--题目：定义栈的数据结构，要求添加一个min函数，能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
local Stack = {
	top = 0,
	mix = 1,
	mixStack = {} ;
}

Stack.push = function(data)
	Stack.top = Stack.top + 1 ;
	Stack[Stack.top] = data ;
	if(data<Stack[Stack.mix]) then
		Stack.mix = Stack.top ;		
	end
	table.insert(Stack.mixStack,Stack.mix)
end

Stack.pop = function()
	local value = table.remove(Stack) ;
	table.remove(Stack.mixStack);
	Stack.top = Stack.top - 1 ;
	return value
end

Stack.min = function()
	return Stack[Stack.mixStack[#Stack.mixStack]] ;
end

Stack.push(2);
Stack.push(1);
Stack.push(4);

for k,v in ipairs(Stack.mixStack) do
	print("v--"..v)
end
print(Stack.min());